JavaScript 與 HTML 密不可分,因為 JavaScript 是用來操控 HTML 元素的主要工具。HTML 負責網頁的結構和內容,而 JavaScript 負責網頁的互動性,使網頁不再僅僅是靜態顯示,還能動態地響應用戶的操作。
HTML(超文本標記語言)是用來定義網頁結構的語言,透過各種標籤(如 <div>
、<p>
、<a>
等)來組織文本、圖片、表單等內容。HTML 文件通常是靜態的,它們只是展示網頁的基本內容。
JavaScript 的主要作用是增強 HTML 的功能,讓靜態的 HTML 結構變得互動化。透過 JavaScript,你可以實現以下功能:
JavaScript 可以直接嵌入到 HTML 中,最常見的方法是使用 <script>
標籤。
你可以在 HTML 文件中內聯 JavaScript 代碼:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<h1>Hello, World!</h1>
<script>
document.write("This is JavaScript output!");
</script>
</body>
</html>
在這個例子中,JavaScript 直接嵌入在 HTML 中,使用 document.write()
方法來向頁面輸出文字。
更常見的做法是將 JavaScript 代碼放在一個單獨的 .js
文件中,然後透過 <script>
標籤來引入這個文件:
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Example</title>
<script src="app.js"></script>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
這樣可以保持 HTML 與 JavaScript 分離,增加代碼的可維護性。
JavaScript 可以透過 DOM
(Document Object Model)來存取和修改 HTML 元素。常見的操作包括:
document.getElementById()
、document.querySelector()
等方法來選取元素。innerHTML
或 textContent
修改元素的內容。src
屬性或鏈接的 href
屬性。element.style.color = 'red';
。<!DOCTYPE html>
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<h1 id="heading">Hello, World!</h1>
<button onclick="changeText()">Change Text</button>
<script>
function changeText() {
document.getElementById('heading').textContent = 'Text changed!';
}
</script>
</body>
</html>
在這個例子中,點擊按鈕後,JavaScript 會改變 <h1>
標籤的內容。
JavaScript 可以監聽和處理來自使用者的事件,這是將靜態 HTML 變為動態應用的關鍵。常見的事件包括:
click
、mouseover
、mouseout
等。keydown
、keyup
等。submit
、change
、input
等。<!DOCTYPE html>
<html>
<head>
<title>JavaScript Events</title>
</head>
<body>
<button id="myButton">Click Me</button>
<script>
document.getElementById('myButton').addEventListener('click', function() {
alert('Button clicked!');
});
</script>
</body>
</html>
在這裡,當用戶點擊按鈕時,會觸發一個彈出對話框顯示訊息。
除了操作現有的 HTML 元素外,JavaScript 還可以動態生成新的 HTML 元素並插入到頁面中。
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<ul id="myList"></ul>
<button onclick="addItem()">Add Item</button>
<script>
function addItem() {
const ul = document.getElementById('myList');
const li = document.createElement('li');
li.textContent = 'New Item';
ul.appendChild(li);
}
</script>
</body>
</html>
每次點擊按鈕時,JavaScript 會動態創建一個新的 <li>
元素,並添加到列表中。
JavaScript 通常用來發送和接收 HTTP 請求,這讓網頁可以在不重新加載的情況下更新內容。AJAX(Asynchronous JavaScript and XML)技術允許我們在背景中與伺服器通信。
fetch
發送 AJAX 請求<!DOCTYPE html>
<html>
<head>
<title>JavaScript AJAX Example</title>
</head>
<body>
<button onclick="fetchData()">Fetch Data</button>
<div id="output"></div>
<script>
function fetchData() {
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => response.json())
.then(data => {
document.getElementById('output').textContent = data.title;
});
}
</script>
</body>
</html>
這裡的 JavaScript 透過 fetch
API 發送一個 HTTP 請求,並在接收到數據後更新頁面內容。
JavaScript 和 HTML 的緊密配合使得網頁可以從靜態變為動態、從簡單的顯示變為富互動的應用。JavaScript 可以存取和修改 HTML 元素,處理事件,並動態生成內容或與伺服器通信,這使得網頁應用程序能夠提供更加豐富和靈活的使用者體驗。